package com.ace.token.common.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import lombok.extern.slf4j.Slf4j;

import java.util.Date;
import java.util.UUID;

/**
 * Token的生成和解析
 * 采用的事JWT
 * @Author
 * @Date 2018年07月03日 下午3:27
 */
@Slf4j
public class TokenUtil {

    /**
     * token秘钥
     */
    private static final String SECRET = "ce911bbeebd043048808e30315094d6fd5d8262f486a479fbd63fc47befb95feaea27a10e2814285bed66c6bd437d4b2";

    /**
     * 创建JWT模式的token
     * @param userId
     * @return String 生成的token
     * @throws Exception
     */
    public static String createJWTToken(String userId)  {
        String token = null;
        try {
             token = JWT.create()
                    .withIssuedAt(new Date())
                    .sign(Algorithm.HMAC256(SECRET));
        }catch (Exception e){
            log.debug(e.getLocalizedMessage());
            e.printStackTrace();
        }
        return token==null? UUID.randomUUID().toString():token;
    }

    /**
     * 随机字符串
     * @return
     */
    public static String createToken(){
    return UUID.randomUUID().toString();
    }



}
